//头像预览：
$('#avatar').change(function () {
    //1.获取用户选中的文件对象
    var file_obj = $(this)[0].files[0];

    //2.获取文件对象的路径
    var reader = new FileReader();
    //读取文件会单独开一个线程，所以要这个线程执行完毕再修改img属性
    reader.readAsDataURL(file_obj);

    //3.修改img的src属性
    reader.onload = function () {
        $('#avatar_img').attr('src', reader.result);
    }
});

//基于Ajax提交数据
$('.reg_btn').click(function () {
    /*方式一：逐一列举
    var formdata = new FormData();
    formdata.append("username",$("#username").val());
    formdata.append("password",$("#password").val());
    formdata.append("re_password",$("#re_password").val());
    formdata.append("email",$("#email").val());
    formdata.append("avatar",$("#avatar")[0].files[0]);
    formdata.append("csrfmiddlewaretoken",$("[name = 'csrfmiddlewaretoken']").val());
    */

    //方式二：通过form
    var formdata = new FormData();
    var request_data = $("#form_register").serializeArray();

    $.each(request_data, function (index, data) {
        formdata.append(data.name, data.value)
    })

    formdata.append("avatar", $("#avatar")[0].files[0]);
    //为什么用了循环，连csrf也不用管了？

    //formdata.append("csrfmiddlewaretoken", $("[name = 'csrfmiddlewaretoken']").val());


    $.ajax({
        url: "",
        type: "post",
        //文件上传所需要配置的属性
        contentType: false,
        processData: false,

        data: formdata,
        success: function (data) {
            if (data.user) {
                //user不为空则注册成功
                location.href = '/blogsystem/login/'
            } else {//注册失败
                //清空错误信息
                $("span.error").html("");
                $(".form-group").removeClass("has-error");

                //显示对应错误信息
                $.each(data.msg, function (field, error_list) {
                    if (field == '__all__') {
                        $("#re_password").next().html(error_list[0]).parent().addClass("has-error");
                    }
                    $("#" + field).next().html(error_list[0]);
                    $("#" + field).parent().addClass("has-error");
                })
            }
        }
    })
})
